在應用程式或是網頁中,保護會員敏感資料是基本且重要的,通常會使用加密技術來處理。這篇將以會員的密碼為例,說明如何應用加密保護資料。
在Spring Boot當中,有提供安全框架,例如Spring Security,大大簡化數據加密的實現,不過要注意,加密並非Spring Boot獨有,其他如Spring框架,也能透過手動配置使用相同加密技術,Spring Boot是提供更簡單的方式實現功能,開發更便捷。
對於會員密碼,Spring Boot預設可使用哈希加密法,像是BCrypt,能夠確保加密的密碼在資料庫當中是不可逆,即使資料庫外洩,也能大大降低密碼被還原成明碼的可能性。而Spring Boot的加密實現,不限於哈希加密,對於對稱加密(如AES)和非對稱加密(如 RSA)也能實現。
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
public class PasswordEncryption {
public static void main(String[] args) {
// 建立BCrypt密碼編輯
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
// 原始密碼
String pw = "goodveryGood";
// 加密密碼
String encodedPW = passwordEncoder.encode(pw);
System.out.println("加密後的密碼: " + encodedPW);
// 驗證密碼
boolean isPWMatch = passwordEncoder.matches(pw, encodedPW);
System.out.println("密碼驗證結果: " + isPWMatch);
}
}
透過Spring Boot的加密功能,能夠更輕鬆保護會員隱私,避免未經授權的資料外洩,提供安全性。